// pages/home-video/index.js
// 导入封装的网络接口
// 1、getTopMV：获取 mv 排行的接口
import { getTopMV } from '../../service/api_video'; 

Page({
	data: {
		topMvs: [], // 视频数据
		hasMore: false // 这是服务器响应的数据标识，为 true 的时候表示还有更多的数据；否则没有了
	},
	
	onLoad() {
		this.getTopMVData(0); // 调用发送请求获取 mv 数据的方法
	},

	// 生命周期：下拉刷新
	onPullDownRefresh() {
		this.getTopMVData(0); // 调用发送请求获取 mv 数据的方法
	},

	// 生命周期：监听到达页面底部
	onReachBottom() {
		this.getTopMVData(this.data.topMvs.length); // 调用发送请求获取 mv 数据的方法
	},

	// 封装发送获取 mv 数据请求的方法
	getTopMVData: async function(offset) {
		// 调用获取 mv 排行的接口
		// 判断是否有更多的数据可以请求
		if(!this.data.hasMore && offset !== 0) return;

		// 展示加载动画
		wx.showNavigationBarLoading();

		// 请求数据
		const res = await getTopMV(offset);
		let newData = this.data.topMvs; // 该变量存最终请求的结果

		if(offset === 0) {
			// 如果是第一次加载或者是下拉刷新
			newData = res.data;
		} else {
			// 如果是上拉加载
			newData = newData.concat(res.data);
		}

		// 设置数据
		this.setData({ topMvs: newData });
		this.setData({ hasMore: res.hasMore });
		wx.hideNavigationBarLoading(); // 关闭加载数据动画
		wx.stopPullDownRefresh(); // 关闭下拉加载的动画
	},

	// 点击 item 触发的事件
	handleItemClick(event) {
		const id = event.currentTarget.dataset.item.id; // 获取点击的 mv 的 id
		// 页面跳转
		wx.navigateTo({
			url: `/packageDetail/pages/detail-video/index?id=${id}`
		});
	}
});
